package com.maigao.api.interceptors.identify;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Identify {

    /**
     * 允许匿名访问
     *
     * @return
     */
    boolean anonymous() default false;

    /**
     * 校验csrf
     *
     * @return
     */
    boolean csrf() default false;

    /**
     * 获取cookie或token重试配置
     * 只在超时情况下重试
     *
     * @return
     */
    Retry retry() default @Retry;

    @interface Retry {
        /**
         * 重试次数
         *
         * @return
         */
        int retryAttempt() default 0;

        /**
         * 每次retry时间间隔，单位ms
         *
         * @return
         */
        int interval() default 50;
    }

}